package com.ruoyi.material.domain;

import java.math.BigDecimal;

import com.ruoyi.common.constant.material.PurchaseConstants;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 仓库库存变动对象 tb_warehouse_stock_record
 *
 * @author wng
 * @date 2024-08-04
 */
public class WarehouseStockRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 出库/入库
     * In 入库变动
     * Out 出库变动
     */
//    @Excel(name = "出库/入库 " +
//            "In 入库变动 " +
//            "Out 出库变动")
    private PurchaseConstants.StockTypeEnum type;

    /**
     * 记录类型
     */
    @Excel(name = "记录类型")
    private String typeName;

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    /**
     * 食品/食品添加剂/农产品/食品相关 名称
     */
    @Excel(name = "食品/食品添加剂/农产品/食品相关 名称")
    private String name;

    /**
     * 入库/出库 数量
     */
    @Excel(name = "入库/出库 数量")
    private BigDecimal quantity;

    /**
     * 变动前 数量
     */
    @Excel(name = "变动前 数量")
    private BigDecimal stockBefore;

    /**
     * 变动后 数量
     */
    @Excel(name = "变动后 数量")
    private BigDecimal stockAfter;

    /**
     * 单位
     */
    @Excel(name = "单位")
    private String unit;

    /**
     * 食品类型
     * Food 食品
     * FoodFarm 食用农产品
     * FoodAdd 食品添加剂
     * FoodRelate 食品相关
     */
//    @Excel(name = "食品类型 " +
//            "Food 食品 " +
//            "FoodFarm 食用农产品 " +
//            "FoodAdd 食品添加剂 " +
//            "FoodRelate 食品相关")
    private PurchaseConstants.FoodTypeEnum fType;

    @Excel(name = "食品类型")
    private String fTypeName;

    public String getfTypeName() {
        return fTypeName;
    }

    public void setfTypeName(String fTypeName) {
        this.fTypeName = fTypeName;
    }

    /**
     * 食品子类型
     */
//    @Excel(name = "食品子类型")
    private Long fTypeSub;

    /**
     * 食品子类型名称
     */
    @Excel(name = "食品子类型")
    private String fTypeSubName;

    /**
     * 是否进口 0非进口 1进口
     */
    @Excel(name = "是否进口 0非进口 1进口")
    private Integer whetherImport;

    /**
     * 0正常 1删除
     */
    private Integer delFlag;



    public String getfTypeSubName() {
        return fTypeSubName;
    }

    public void setfTypeSubName(String fTypeSubName) {
        this.fTypeSubName = fTypeSubName;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public PurchaseConstants.StockTypeEnum getType() {
        return type;
    }

    public void setType(PurchaseConstants.StockTypeEnum type) {
        this.type = type;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setQuantity(BigDecimal quantity) {
        this.quantity = quantity;
    }

    public BigDecimal getQuantity() {
        return quantity;
    }

    public void setStockBefore(BigDecimal stockBefore) {
        this.stockBefore = stockBefore;
    }

    public BigDecimal getStockBefore() {
        return stockBefore;
    }

    public void setStockAfter(BigDecimal stockAfter) {
        this.stockAfter = stockAfter;
    }

    public BigDecimal getStockAfter() {
        return stockAfter;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnit() {
        return unit;
    }

    public PurchaseConstants.FoodTypeEnum getfType() {
        return fType;
    }

    public void setfType(PurchaseConstants.FoodTypeEnum fType) {
        this.fType = fType;
    }

    public void setfTypeSub(Long fTypeSub) {
        this.fTypeSub = fTypeSub;
    }

    public Long getfTypeSub() {
        return fTypeSub;
    }

    public void setWhetherImport(Integer whetherImport) {
        this.whetherImport = whetherImport;
    }

    public Integer getWhetherImport() {
        return whetherImport;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("deptId", getDeptId())
                .append("type", getType())
                .append("name", getName())
                .append("quantity", getQuantity())
                .append("stockBefore", getStockBefore())
                .append("stockAfter", getStockAfter())
                .append("unit", getUnit())
                .append("fType", getfType())
                .append("fTypeSub", getfTypeSub())
                .append("whetherImport", getWhetherImport())
                .append("delFlag", getDelFlag())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .toString();
    }
}
